#include <logger\LogManager.h>

#include <iostream>

#include "SpdlogPlugin.h"

void hello_logging() {
  // 1. 使用默认配置初始化日志管理器
  //    默认后端是 "spdlog"，默认输出到控制台。
  Logging::LogManager::initialize();

  Logging::register_spdlog_backend();

  std::cout << "Logging system initialized." << std::endl;

  // 2. 获取默认的logger实例
  auto logger = Logging::LogManager::get_logger();  // name="default"

  // 3. 记录不同级别的日志
  logger->info("Hello, Logging World!");
  logger->warn("This is a warning message.");

  // 4. 在程序退出前，优雅地关闭日志系统
  //    这将确保所有缓冲的日志都被刷新（例如写入文件）。
  Logging::LogManager::shutdown();
  std::cout << "Logging system shut down." << std::endl;
}

int main() {
  hello_logging();
  return 0;
}

/*
Logging system initialized.
[HH:MM:SS.ms] [info] [default] Hello, Logging World!
[HH:MM:SS.ms] [warning] [default] This is a warning message.
Logging system shut down.
*/